typedef struct node
{
	void * data;
	struct node * next;	//necessary cause typedef wasn't done defining yet previous to this
	struct node * prev;
}	Node;

List myList = {NULL}
addToFront(&myList, 1);

{
void addToFront( List *list , int newData)
	Node *temp;
	temp = malloc(sizeof(node))
	if(temp == NULL)
	{
		//HORRIBLE THINGS HAVE HAPPENED, ABORT, ABORT!
	}
	temp -> data = newData;
	temp -> next = *curr;
	list -> head = temp;
}

void traverse(List *list, void (*fp)(void *))
{
	Node * current = list -> head;
	while(current !=null)
	{
		fp(current->data);
	}
}

Node *head = NULL;
addToFront(&head, 1);

int i = 42;
int *p = &i;
int **px = &p;
